package E_2024;
/*
题目描述
    有一批箱子（形式为字符串，设为str），要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地，请输出箱子的摆放位置。
    例如：箱子ABCDEFG，空地宽度为3，摆放结果如图：
    则输出结果为：
    AFG
    BE
    CD
输入描述
    输入一行字符串，通过空格分隔
    前面部分为字母或数字组成的字符串str，表示箱子
    后面部分为数字n，表示空地的宽度
    例如：
    ABCDEFG 3
输出描述
    箱子摆放结果，如题目示例所示
    AFG
    BE
    CD
 */
public class E_100_28 {
    public static void main(String[] args) {
        ans("ABCDEFG",3);
        ans("ABCDEFG",4);
        ans("ABCDEFG",2);
    }
    public static void ans(String str, int length){
        char[][] chs = new char[length][length];
        int x = 0;
        int index = 0;
        for (int y = 0; y < length && index < str.length(); y++) {
            for (int k = 0; k < length && index < str.length(); k++) {
                if (y % 2 == 0) {
                    chs[x][y] = str.charAt(index++);
                    x += 1;
                }else {
                    x += -1;
                    chs[x][y] = str.charAt(index++);
                }
            }
        }
        for (char[] ch : chs) {
            for (char c : ch) {
                System.out.print(c == '\u0000' ? ' ' : c);
            }
            System.out.println();
        }
    }
}
